As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
An information handling system is commonly provided with an operating system that is stored on a storage device of the information handling system and executed by a central processing unit (CPU) of the information handling system. The operating system typically requires activation when first installed on the information handling system, e.g., by the original equipment manufacturer (OEM) or end user. For example, a retail end user may separately purchase a computer and operating system (OS) software disks. The retail user is required to enter a unique identifier (25-character product key) when installing the OS on the computer from the separately purchased software disks. The installed OS is in communication across the Internet with the OS manufacturer/supplier, and in response to entry of the correct unique identifier, the OS receives a product ID from the OS manufacturer/supplier, which serves to activate the OS on the computer.
In another method, OS activation of an operating system such as Microsoft Windows 7 may also be performed without requiring communication with the OS manufacturer/supplier. For example, OEM activation certificate of authority information may be embedded in the core basic input/output system (BIOS) code in non-volatile memory of the system BIOS. This information is in turn not accessible by the OS for activation until it is copied from the BIOS code to an ACPI SLIC table that is used by an advanced configuration and power interface (ACPI)-compliant BIOS program to store software licensing description information within the ACPI memory table. Whether or not the unique identifier information is copied to the ACPI table is controlled by two fields that are set at the time of OEM manufacturing: SLIC lock/unlock and SLIC enable/disable. If the SLIC table is enabled, the OEM activation certificate information is copied from the BIOS code to the SLIC table during Power On Self Test (POST). After manufacture, the SLIC table is locked and disabled if no operating system is purchased with the system and before shipment from the OEM to the end user (otherwise the SLIC table is enabled). Even though non-volatile memory of the system BIOS may be later updated during a BIOS Flash, it cannot be copied to the SLIC table when it is in the disabled state.
Upon installation of the OS on a particular computer (e.g., by the computer OEM), the OS queries the SLIC table during boot and the OEM activation certificate information found there is compared to certificate of authority information contained within the OS. If the stored OEM activation certificate information matches the certificate of authority information within the OS, the OS is activated. This activation procedure is performed using an OS activation string supplied by the OS provider (e.g., Microsoft) corresponding to the OS system version to be installed (e.g., Microsoft Windows 7), and which itself is installed in the system BIOS prior to installing the OS on the computer system main storage. Activation of the newly installed OS is not possible without the presence of the appropriate OS activation string. As previously described, this OS activation string can only be installed during original (e.g., OEM) factory configuration of the new computer system using an appropriate system interface, such as issuing the SMBIOS interface commands in manufacturing mode to unlock, enable and lock the SLIC table.
After activation, an end user may later wish to upgrade the OS running on the computer, e.g., from Microsoft Windows XP to Microsoft Windows Vista or Microsoft Windows 7 or to similarly upgrade between corresponding server OS versions. This requires installation and activation of the new OS on the existing computer. In some cases, corporate or in-house computer users may wish to upgrade the OS running on a large number of existing computers that are already deployed in the field. However, the onboard BIOS of these field systems only includes the original factory-installed OEM activation string corresponding to the existing original OS (e.g., Microsoft Windows XP).
Once deployed in the field, there is no system interface or other capability available to end users for utilizing a new OEM activation string to perform an OS upgrade (e.g., from Windows XP to Windows 7) in the field for a large number of computer systems. Once a computer system is shipped from the factory with the SLIC table disabled, it must be enabled before OS activation can occur. In order to enable the SLIC table, it must first be unlocked, then enabled, then locked again. However, BIOS code cannot do this unconditionally, nor can BIOS code simply be copied from one system to another system to pirate the activation. Thus, activation of the upgraded OS on each computer requires manual entry of the appropriate certificate of authority information for the new OS into that individual computer so that a product ID from the OS manufacturer/supplier (e.g., Microsoft) may be obtained for that computer from across the Internet.